1) Field of the Invention
The present invention relates to a bar-code reader that reads a bar code optically, and a method of reading the bar code.
2) Description of the Related Art
So far, in distribution of products, POS (Point Of Sales) systems have been used. The POS systems are used to acquire information like product name, product price, date of expiry etc. from a host unit based on bar-code information attached to a product that is read optically by a bar-code reader (bar-code scanner).
FIG. 13 is a block diagram of a configuration of a conventional POS system. Bar-code readers 101 to 10n are installed in a shop. These Bar-code readers 101 to 10n optically read a bar code that is attached to a product and transmit bar-code information to a host unit 20.
A bar code includes black bars and white bars that are arranged alternately. The bar code readers 101 to 10n have an arrangement to optically scan the bar code by laser beam. The laser beam is emitted from a laser diode. The information obtained by scanning the bar code is converted to electric signals and widths of the black lines and the white lines in the bar code is determined from those electric signals. The width of the lines (hereinafter, “bar-code information”) change with the price, product code, expiry date etc. of the commodity to which the bar code is attached.
A PLU file 30 includes a correspondence between product information and bar-code information. The product information includes product code, product name, price etc. A host unit 20 receives bar-code information from the bar-code readers 101 to 10n and search the PLU file 30 for the product information corresponding to the bar-code information received. The host unit 20 transmits back the product information to the bar-code reader that has transmitted the bar-code information.
The bar codes can be roughly divided into World Product Code (hereinafter, “WPC”) and second code of variable length. The WPC include Japan Article Number (hereinafter, “JAN”) code, Universal Product Code (hereinafter, “UPC”), European Article Number (hereinafter, “EAN”) etc.
A bar-code according JAN system is illustrated in FIG. 14. This bar-code 40 includes a left guard bar LGB, a center bar CB, and a right guard bar RGB. A right data block formed by data characters of six characters is sandwiched between the right guard bar RGB and the center bar CB. A left data block formed by data characters of six characters is sandwiched between the center bar CB and the left guard bar LGB.
The bar-code 40 is called as 13 digit bar-code. Either an even parity character (a character that has even number of modules of two black data (black bars)) or an odd parity character (a character that has odd number of modules of two black data (black bars) is assigned to each character in the left data block. Thus, the bar-code 40 is a bar code in which characters in the thirteenth line are assigned to values corresponding to combinations of the even parity and the odd parity and includes information of 13 lines.
A composition of a 13 digit bar-code will be described in detail by referring to FIG. 15 to FIG. 18. The right guard bar RGB in the 13 digit bar-code includes three bars in the order of black, white, and black, each formed by one module (unit length) respectively. The center bar CB includes five bars in the order of white, black, white, black, and white, each formed by one module respectively. A left guard bar LGB includes three bars in the order of black, white, and black, each formed by one module respectively. As illustrated in FIG. 15, the left data block is formed by data characters of six characters C1 to C6 and the right data block is formed by data characters of six characters C7 to C12.
As illustrated in FIG. 16, each data character C1 to C6 is formed by a combination of four bars, two white bars and two black bars, and correspond to seven modules (each module has a unit length). In other words, one data character is formed by seven modules.
The four bars that form the data character are lined up in each data character (C1 to C6) that form the left data block, in the order of white data (a), black data (b), white data (c), black data (d) from the left guard bar LGB. The right data block has the same structure as that of the left data block.
FIG. 17 is a table of all bar-width (number of modules) patterns that each bar a, b, c, and d of the data character can have and values corresponding to each bar-width pattern. E-, that precedes the values denotes a data character of even parity (a character for which the sum of number of modules of both black data (b, d) is an even number).
Whereas, O-, that precedes the values denotes a data character of odd parity (a character for which the sum of number of modules of both black data (b, d) is an odd number). T1 denotes a bar width (number of modules) in which black data (d) on the side of the center bar CB and adjacent white data (c) in each data character are combined. T2 denotes a bar width (number of modules) in which corresponding white data (c) and black data (b) on the side of the guard bar (RGB or LGB) are combined. Both T1 and T2 are called as δ-distance.
According to the regulations of the WPC code, the right data block is formed by the data characters of the even parity only and the left data block is formed by the data characters of the even parity and the odd parity.
However the combinations of the even parity and the odd parity that the six data characters of the left data block can have are limited to ten patterns 0 to 9 shown in FIG. 18 due to the regulations of the WPC code. A unique value (from 0 to 9), i.e. a flag character is defined for each combination.
Each combination pattern of classification of the even parity or the odd parity (hereinafter, “ODD/EVEN composition”) that the six data characters of the left data block can have is compared with each of the combination patterns and is different for characters not less than two.
Moreover, according to the regulations of the WPC code, when 12 characters that are included in the 13 digit bar-code are classified as an odd position character or an even position character one after the other with a character on the extreme right as the odd position character (the flag character is classified as an odd position character), the sum of three times of the total of values of the data characters in the odd position and the total of values of the data characters in the even position is an integral multiple of 10.
Apart from the 13 digit bar-codes, there are 8 digit bar-codes that are used when the printing area of the bar code is smaller. The 8 digit bar code stores data characters that are formed by four characters, in the left data block and stores data characters that are formed by four characters, in the right data block.
Conventional bar-code readers are disclosed in Japanese Patent Application Laid-open Publication No. H05-054211, H08-329350, and H11-120240.
In the conventional bar-code readers employ a composition in which one character data is formed by seven modules (see FIG. 16). However, due to wrinkles on a bar code or error during extraction of a module, sometimes the one character data is recognized as six modules (one module less for seven modules) or eight modules (one module in excess in seven modules). If the modules are not recognized correctly, the character data cannot be demodulated properly so that the accuracy of reading the bar-code is decreases.